package com.hospital.centerone.service.Impl;


import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.hospital.centerone.dao.UnitDao;
import com.hospital.centerone.entity.Unit;
import com.hospital.centerone.service.UnitService;


@Service
@Transactional
public class UnitServiceImpl implements UnitService{

	@Autowired
	UnitDao unitDao;
	

	public void setUnitDao(UnitDao unitDao) {
		this.unitDao = unitDao;
	}

	/**
	 * 根据条件查询所有计量单位
	 */
	@Override
	public List<Unit> queryAllUnits(Unit unit) {
		List<Unit> findAllUnits = unitDao.findAllUnits(unit);
		return findAllUnits;
	}
	
	/**
	 * 软删除计量单位
	 */
	@Override
	public int deleteUnit(Integer unit_id) {
		int deleteUnit = unitDao.deleteUnit(unit_id);
		return deleteUnit;
	}

	/**
	 * 添加计量单位
	 */
	@Override
	public int addUnit(Unit unit) {
		int add = unitDao.addUnit(unit);
		return add;
	}


	/**
	 * 修改计量单位
	 */
	@Override
	public int updateUnit(Unit unit) {
//		修改前先查询之前的计量单位名
		String updateAgeUnitName = unitDao.updateSelectUnitName(unit.getUnit_id());
//		在查询修改后是否存在相同的名字
		String updateSelectUnitName = unitDao.addSelectUnitName(unit.getUnit_name());
		if (updateSelectUnitName!=null&&!updateAgeUnitName.equals(updateSelectUnitName)) {
			throw new RuntimeException("计量单位已存在，修改失败");
		}
		int updateUnit = unitDao.updateUnit(unit);
		return  updateUnit;
	}

	/**
	 * 添加计量前先查询是否存在相同的计量单位
	 */
	@Override
	public String addSelectUnitName(String unit_name) {
		String addSelectUnitName = unitDao.addSelectUnitName(unit_name);
		if (addSelectUnitName!=null) {
			throw new RuntimeException("计量单位已存在，添加失败");
		}
		return addSelectUnitName;
	}
	
		
}
